package com.hbnu.xiadongyu;
/*
使⽤匿名内部类和Lambda表达式为按钮设置点击事件。
 */
public class End {
    public static void main(String[] args) {
        Button button1=new Button("登陆");
        Button button2=new Button("取消登陆");
        button1.setClickListener(
                new ButtonClickListener() {
                    @Override
                    public void onClick(String buttonName) {
                        System.out.println(buttonName);//实现接口事件
                    }
                }
        );
        button2.setClickListener((buttonName )-> {
                System.out.println(buttonName);
            }
        );
        button1.click();
        button2.click();
    }
}
@FunctionalInterface
interface ButtonClickListener {
    void onClick(String buttonName);
}
class Button {
    private String name;
    private ButtonClickListener listener;
    public Button(String name) {//构造方法给私有name设置事件名称
        this.name = name;
    }
    public void setClickListener(ButtonClickListener listener) {//用于实现接口方法
        this.listener = listener;//引用接口
    }
    public void click() {//按钮被点击将按钮判断是否有这个事件有的话执行
        if (listener != null) {
            listener.onClick(name);
        }
    }
}